package com.dys.testdatetime13;

import java.time.Clock;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;

/**
 * @className: com.dys.testdatetime13.ZonedDateTimeTest
 * @description: 日期时间的时区
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/09/03 下午10:42
 */
public class ZonedDateTimeTest {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        // 1.获取所有的时区ID
        // ZoneId.getAvailableZoneIds().forEach(System.out::println);
        // 2.获取当前日期时间，东八区的日期时间 比标准时间早8h
        LocalDateTime now = LocalDateTime.now();
        System.out.println("当前日期时间：" + now);

        // 3.获取标准时间
        ZonedDateTime bz = ZonedDateTime.now(Clock.systemUTC());
        System.out.println("标准日期时间：" + bz);

        // 4.使用计算机默认的时区 创建日期时间
        ZonedDateTime now1 = ZonedDateTime.now();
        System.out.println("计算机默认时区：" + now1);

        // 5.使用指定时区创建日期时间
        ZonedDateTime now2 = ZonedDateTime.now(ZoneId.of("America/Marigot"));
        System.out.println("指定时区创建日期时间：" + now2);
    }
}
